1. Từ phép cộng đến phép nhân
Trong các khuôn khổ lý thuyết, các phép biến đổi tuyến tính và phép dịch chuyển (biến đổi affine) thường được xử lý riêng biệt. Tuy nhiên, các thư viện hiệu suất cao như BLAS (Các thủ tục con đại số tuyến tính cơ bản) được tối ưu hóa cụ thể cho các phép nhân ma trận-véc-tơ và ma trận-ma trận. Để tận dụng các kernel này, chúng ta biểu diễn mọi thao tác dưới dạng:
$$T(v) = Av$$
2. Tọa độ đồng nhất
Để thực hiện một phép dịch chuyển trong $\mathbf{R}^n$ bằng ma trận, chúng ta mở rộng sang $\mathbf{R}^{n+1}$. Một véc-tơ $[x, y, z]^T$ trở thành $[x, y, z, 1]^T$. Số '1' bổ sung này cho phép việc dịch chuyển được mã hóa vào cột cuối cùng của ma trận $(n+1) \times (n+1)$.
Một phép dịch chuyển theo $v_0 = [t_x, t_y, t_z]^T$ được biểu diễn bởi:
$$A = \begin{bmatrix} 1 & 0 & 0 & t_x \\ 0 & 1 & 0 & t_y \\ 0 & 0 & 1 & t_z \\ 0 & 0 & 0 & 1 \end{bmatrix}$$
Các số $0, 0, 0, 1$ ở hàng cuối đóng vai trò then chốt. Khi $A$ nhân với một véc-tơ có thành phần cuối cùng là $1$, thành phần cuối cùng kết quả là:
$(0 \cdot x) + (0 \cdot y) + (0 \cdot z) + (1 \cdot 1) = 1$
Điều này đảm bảo tính chất "affine" của dữ liệu được bảo toàn, cho phép thực hiện các thao tác tuần tự mà không làm mất tính toàn vẹn của hệ tọa độ.
3. Chuẩn thực thi: BLAS
Hiệu quả tính toán phụ thuộc vào các thủ tục chuẩn hóa. BLAS cung cấp ba cấp độ thao tác:
- Cấp độ 1: Các thao tác véc-tơ-véc-tơ (ví dụ: tích vô hướng).
- Cấp độ 2: Các thao tác ma trận-véc-tơ ($Ax+b$).
- Cấp độ 3: Các thao tác ma trận-ma trận ($AB+C$), là những thao tác tính toán dày đặc nhất và hiệu quả về phần cứng nhất.